using System.Collections.Generic;
using Orchard;

namespace Szmyd.Infiltrator.Autofac {
    using System;

    public interface IProfilingManager : ISingletonDependency  {
        bool IsStarted { get; }
        void Start();
        void Stop();
        void Restart();
        IEnumerable<ProfilingInfo> GetAll();
        IEnumerable<ProfilingInfo> GetForThread(Guid threadId); 

        void Register(InvocationData invocation);
        void PushInvocation(InvocationData invocation);
        void PopInvocation();
    }
}